#ifndef BLOGITEMWIDGET_H
#define BLOGITEMWIDGET_H

#define CoverWidth 120
#define CoverHeight 90

#include <QWidget>
#include <QLabel>
#include <QHBoxLayout>
#include <QMouseEvent>
#include "dataModel/BlogPreview.h"

class BlogItemWidget : public QWidget
{
    Q_OBJECT
public:
    explicit BlogItemWidget(
        QWidget *parent = nullptr,
        const QString &title = "文章标题",
        const QString &summary = "文章摘要文章摘要文章摘要文章摘要文章摘要"
                                 "文章摘要文章摘要文章摘要文章摘要文章摘要"
                                 "文章摘要文章摘要文章摘要文章摘要文章摘要"
                                 "文章摘要文章摘要文章摘要文章摘要文章摘要"
                                 "文章摘要文章摘要文章摘要文章摘要文章摘要"
                                 "文章摘要文章摘要文章摘要文章摘要文章摘要"
                                 "文章摘要文章摘要文章摘要文章摘要文章摘要"
                                 "文章摘要文章摘要文章摘要文章摘要文章摘要"
                                 "文章摘要文章摘要文章摘要文章摘要文章摘要"
                                 "文章摘要文章摘要文章摘要文章摘要文章摘要...",
        const QPixmap &cover = QPixmap(":/other/resoures/other/defaultCover.png"));

    void setTitle(const QString &title);
    void setSummary(const QString &summary);
    void setCover(const QPixmap &cover);
    void quickSetup(const BlogPreview &blogPreview);

private:
    QLabel *titleLabel;   // 标题
    QLabel *summaryLabel; // 摘要
    QLabel *coverLabel;   // 封面

    QHBoxLayout *mainLayout; // 主布局：封面 + 右侧内容
    QVBoxLayout *textLayout; // 右侧文本布局

protected:
    void mousePressEvent(QMouseEvent *event) override; // 重写鼠标按下事件

signals:
    void openDetailPage();
};

#endif // BLOGITEMWIDGET_H
